#ifndef SEMANTIC_ANALYZER_H
#define SEMANTIC_ANALYZER_H

#include "ast.h"
#include "catalog.h"

// 语义分析结果结构
typedef struct {
    int success;         // 分析是否成功
    char* error_message; // 错误消息
    int error_line;      // 错误行号
    int error_column;    // 错误列号
} SemanticResult;

// 执行语义分析
SemanticResult analyze_semantics(ASTNode* ast, Catalog* catalog);

// 释放语义分析结果
void free_semantic_result(SemanticResult result);

#endif // SEMANTIC_ANALYZER_H